/*
给出一个字符串和多行文字，在这些文字中找到字符串出现的那些行。
你的程序还需支持大小写敏感选项：当选项打开时，表示同一个字母的大写和小写看作不同的字符；当选项关闭时，表示同一个字母的大写和小写看作相同的字符。

输入格式
输入的第一行包含一个字符串 S，由大小写英文字母组成。
第二行包含一个数字，表示大小写敏感的选项，当数字为 0时表示大小写不敏感，当数字为 1时表示大小写敏感。
第三行包含一个整数 n，表示给出的文字的行数。
接下来 n行，每行包含一个字符串，字符串由大小写英文字母组成，不含空格和其他字符。

输出格式
输出多行，每行包含一个字符串，按出现的顺序依次给出那些包含了字符串 S的行。

数据范围
1≤n≤100,
每个字符串的长度不超过 100。

输入样例：
Hello
1
5
HelloWorld
HiHiHelloHiHi
GrepIsAGreatTool
HELLO
HELLOisNOTHello

输出样例：
HelloWorld
HiHiHelloHiHi
HELLOisNOTHello
*/
#include <bits/stdc++.h>
using namespace std;
void upstring(string &s)
{
    // ::toupper  ::tolower
    transform(s.begin(), s.end(), s.begin(), ::toupper);
}
int main()
{
    string s;
    string str[101], sttr[101];
    int flag, n, i, index;
    cin >> s; //要匹配的子串
    cin >> flag >> n; //flag=0,大小写不敏感 ； flag=1,大小写敏感
    if (flag == 0)
    {
        upstring(s);
    }
    for (i = 1; i <= n; i++) //n行字符串
    {
        index = -1;
        cin >> str[i];
        sttr[i] = str[i];
        if (flag == 0)
        {
            upstring(str[i]); //大小写不敏感，字符串转化为大写
        }
        index = str[i].find(s); //从字符串中查找子串s
        if (index != -1)
        {
            cout << sttr[i] << endl;
        }
    }
    return 0;
}

/*
老师解
#include <bits/stdc++.h>
using namespace std;
string s;

int oper1(string str, string s)
{
    int pos = str.find(s);
    if (pos != -1)
        return 1;
    else
        return 0;
}

int oper0(string str, string s)
{
    for (int i = 0; i < str.size(); i++)
    {

        if (str[i] >= 'A' && str[i] <= 'Z')
        {
            str[i] = str[i] + 32;
        }
    }
    int pos = str.find(s);
    if (pos != -1)
        return 1;
    else
        return 0;
}

int main()

{
    cin >> s;
    int a;
    cin >> a;
    if (a == 0)
    {
        for (int i = 0; i < s.size(); i++)
        {
            if (s[i] >= 'A' && s[i] <= 'Z')
            {
                s[i] = s[i] + 32;
            }
        }
    }
    int n;
    cin >> n;
    while (n--)
    {
        string str;
        cin >> str;
        if (s.size() > str.size())
            continue;
        if (a == 1)
        {
            string str1 = str;
            int k = oper1(str1, s);
            if (k == 1)
                cout << str << endl;
        }
        else
        {
            string str1 = str;
            int k = oper0(str1, s);
            if (k == 1)
                cout << str << endl;
        }
    }
    return 0;
}
*/